home *** CD-ROM | disk | FTP | other *** search
- #ifndef _SEARCH_H_
- #define _SEARCH_H_
-
- #import <regex.h>
- #import <stdio.h>
- #import "text/egrep.h"
-
- extern char *foundWord; /* word previously found by findWord */
- extern int binarySearchIgnoreCase;
-
- #define bm_table_size 256
-
- typedef struct bm_machine {
- unsigned short plength;
- unsigned short skiptab[bm_table_size];
- char casemap[bm_table_size];
- char pattern[0];
- } bm_machine;
-
- /* functions for matching regular expressios */
- extern char *re_match_within(char *s, struct regex *re);
- extern char *re_match_prefix(char *s, struct regex *re);
- extern char *re_match_word(char *s, struct regex *re);
- extern char *re_match_exactly(char *s, struct regex *re);
- extern char *re_search(int fd, char *context,
- char *(*routine)(char *, struct regex *), struct regex *re);
-
- /* functions for string matching */
- extern bm_machine *bm_compile(char *s, int ignore_case);
- extern char *bm_match(char *s, int slength, bm_machine *machine);
- extern char *bm_match_prefix(char *s, int slength, bm_machine *machine);
- extern char *bm_match_word(char *s, int slength, bm_machine *machine);
- extern char *bm_match_exactly(char *s, int slength, bm_machine *machine);
- extern char *bm_search(int fd, char *context,
- char *(*routine)(char *, int, bm_machine *), bm_machine *machine);
-
- /* functions for binary searching sorted files */
- extern BSbcompare(char *s, char *t);
- extern BSfcompare(char *s, char *t);
- extern char *BinarySearch(FILE *f, char *word);
- extern char *binarySearch(FILE *f, char *word,
- char *s, int s_len, int (*compare)(char *, char *));
- extern long refOffset(char *s);
- extern long findWord(FILE *f, char *word);
-
- /* ancillary searching functions */
- extern char *isFunctionWord(char *s);
-
-
- #endif
-
-